iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
DevOps

Golang X DevOps系列 第 17

Day17 - 把網頁塞進 Container

  • 分享至 

  • xImage
  •  

撰寫DCOKERFILE

  • 可是昨天寫的只要打exit就直接不見了
  • 難道我每次都要打那又臭又長的指令嗎
  • 當然不用 所以這就是為甚麼 container和 Dockerfile 存在的理由

把網頁塞進去

  • 那想當然爾 我們想要把網頁放在 docker 裡面執行
  • 所以我們需要先把執行環境 COPY一份進去
FROM golang:1.19-alpine

WORKDIR /app

COPY go.mod ./
COPY go.sum ./
RUN go mod download

COPY . ./

RUN go build -o /go-web

EXPOSE 8080

CMD [ "/go-web" ]
  • WORKDIR是在Docker裡面設置一個區域,告訴docker以後所有子目錄都放在這個底下
  • COPY 把目前本地端的檔案COPY進去Docker裡,上面的./就是在 APP 底下
    • 格式 : COPY [本地位置] [DOCKER裡的位置]
  • RUN 是指說我要在Docker裡面跑甚麼指令 因為我要讓她下載module 所以要 go mod download
  • EXPOSE 8080 是指把8080 port 從 docker 裡面對外開放
  • 接著 CMD 執行container

編出 Image

  • 我們撰寫完Docker後,接著要把它變成 Image 讓我們之後可以持續使用
  • 那在我們的CMD打上
  • --tag [NAME] 指說這個image要叫做甚麼名稱
  • 接著他就會把這個檔案編成 Image 了
docker build --tag go-web .

查看 Image

  • 打出 docker image ls 就可以看到我們剛剛編寫的 Image 了
docker image ls

啟動 Image

  • 接著我們把 docker run 起來
  • --pubish [外部]8080:[內部]8080 是指把docker的 8080 port 對應到外部的8080 port
docker run --publish 8080:8080 go-web
  • 一樣到 localhost:8080就可以看到網頁瞜


上一篇
Day16 - 建造一個乾淨的開發環境
下一篇
Day18 - 在進入 CI / CD 前 我們應該知道
系列文
Golang X DevOps30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言